package prog1.hausaufgabe2.termeAuswerten;

/**
 * @author moritz.platt@campus.tu-berlin.de
 */
public class main {
    
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        
        int temp_int;
        double temp_double;
        
        int a = 2; 
        int b = 10; 
        double c = 3.0; 
        double d = 1.0; 
        boolean e = false;
        
        //  1
        //  Reihenfolge der Auswertung:
        //  Multiplikation, Addition
        //  Datentyp des Ergebnisses per Definition int
        a = 3 + 4 * 2;
        System.out.println("1: " + a);
        
        a = 2;  //  zurücksetzen
        
        //  2
        //  Reihenfolge der Auswertung:
        //  Boolsche Operation (Bitweises UND), Inkrementation, Addition, Multiplikation
        //  http://de.wikipedia.org/wiki/Bitweiser_Operator#UND
        //  Datentyp des Ergebnisses int
        temp_int =  a * 3 & 5 + b++;
        System.out.println("2: " + temp_int);
        
        //  3
        //  Datentyp des Ergebnisses per Definition double
        //  Erwartetes Ergebnis: 0
        c = b % a;
        System.out.println("3: " + c);
        
        c = 3.0;
        
        //  4
        //  Uncompilable source code - possible loss of precision (int * double = double)
        //  required: int
        //  found:    double
        System.out.println("4: n.A.");
        
        //  5
        //  Reihenfolge der Auswertung:
        //  Multiplikation, Inkrementation, Subtraktion
        //
        //  Datentyp des Ergebnisses double (int * double = double)
        temp_double =  a++ - b * c;
        System.out.println("5: " + temp_double);
        
        //  6
        //  Reihenfolge der Auswertung:
        //  Multiplikation, Zuweisungsoperator
        d *= c * c;
        System.out.println("6: " + d);
        
    }
}
